3 - Albedo reflector optimization - Mandy Lewis bifiPV Talk#
Artificial Reflector on Single-Axis-Tracked PV System Modelling a PV test site in Golden, Colorado with 70% reflective artificial reflectors under the modules
## 0. Setup
%%bash
wget https://github.com/LBNL-ETA/Radiance/releases/download/012cb178/Radiance_012cb178_Linux.zip -O radiance.zip
unzip radiance.zip
tar -xvf radiance-5.3.012cb17835-Linux.tar.gz;
Cell In[1], line 4
wget https://github.com/LBNL-ETA/Radiance/releases/download/012cb178/Radiance_012cb178_Linux.zip -O radiance.zip
^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
!pip install git+https://github.com/NREL/bifacial_radiance.git@development
import os
os.environ['PATH'] += ":radiance-5.3.012cb17835-Linux/usr/local/radiance/bin"
os.environ['LIBRARYPATH'] += ":radiance-5.3.012cb17835-Linux/usr/local/radiance/lib"
os.environ['RAYPATH'] = ":radiance-5.3.012cb17835-Linux/usr/local/radiance/lib"
import bifacial_radiance as br
from bifacial_radiance import *
import numpy as np
import pandas as pd
import os
# This information helps with debugging and getting support :)
import sys, platform
print("Working on a ", platform.system(), platform.release())
print("Python version ", sys.version)
print("Pandas version ", pd.__version__)
print("bifacial_radiance version ", br.__version__)
Working on a Windows 10
Python version 3.11.4 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 13:38:37) [MSC v.1916 64 bit (AMD64)]
Pandas version 2.1.0
bifacial_radiance version 0.4.2+223.g58332d6.dirty
Inputs for location, PV system, reflectors, etc#
test_folder = 'Mandy'
if not os.path.exists(test_folder):
os.makedirs(test_folder)
sensorsy = 5
#DOHA
lat = 25.2854
lon = 51.5310
# Module parameters
num_panels = 1 #1-UP system, number of panels on collector
module_x = 1 #assume 1 meter width
module_y = 2 #assume 2 meter length
xgap = 0.05 #assume 5 cm gap between modules
ygap = 0.0 #m, 1-UP system
zgap = 0.055 # m
# Torquetube PArameters
diameter = 0.130175 # 5 1/8 in
visible = True
material = 'Metal_Grey'
tubetype = 'round'
axisofrotation = False
tubeParams = {'tubetype':tubetype,
'diameter':diameter,
'material':material,
'axisofrotation':axisofrotation,
'visible':visible}
# Scene Parameters
axis_azimuth = 90 # SAT modules with N/S axis are 'facing east', and tilt angle changes to face east vs west.
axis_tilt = 0
hub_height = 1.5 # m
albedo = 0.2 #Assume non-reflecting ground surface has albedo of ~0.2
nMods = 7
nRows = 3
pitch = 5.7 #pitch in m
GCR = module_y/pitch
Get up module CEC parameters#
#Set up module parameters
bf = 0.7
url = 'https://raw.githubusercontent.com/NREL/SAM/patch/deploy/libraries/CEC%20Modules.csv'
db = pd.read_csv(url, index_col=0) # Reading this might take 1 min or so, the database is big.
# print(db)
modfilter2 = db.index.str.startswith('LONGi') & db.index.str.endswith('LR6-60HIBD-305M')
CECMod = db[modfilter2]
print(len(CECMod), " modules selected. Name of 1st entry: ", CECMod.index[0])
Module_power = CECMod['STC'].values[0]
print(Module_power)
#Set up system parameters
DCACratio = 1.2
1 modules selected. Name of 1st entry: LONGi Green Energy Technology Co. Ltd. LR6-60HIBD-305M
305.52
Set up reflector parameters#
reflector_length = 1.0 #m reflector length
reflector_width = (nMods*(module_x+xgap))-xgap #reflectors end flush with edges of modules to N and S; equivalent to ROW Width
reflector_offset = 0 #m reflector location, center with respect to torque tube
reflectance = 0.7 #% reflectance
#Create new material for ground-reflecting material:
description = 'Custom reflecting ground sheet material'
ref_material_name = 'Ground_sheet'
#Start with (spectrally-invarying) albedo given
Rrefl = reflectance
Grefl = reflectance
Brefl = reflectance
Make Modules and Reflectors objects#
demo = br.RadianceObj('Mandy_reflectors',path = test_folder)
epwfile = demo.getEPW(39.7407, -105.1686) # Golden, CO
#Valid options: mm_dd, mm_dd_HH, mm_dd_HHMM, YYYY-mm-dd_HHMM
metdata = demo.readWeatherFile(epwfile, coerce_year=2023, starttime='2023-12-04', endtime='2023-12-04')
path = Mandy
Getting weather file: USA_CO_Golden-NREL.724666_TMY3.epw
... OK!
8760 line in WeatherFile. Assuming this is a standard hourly WeatherFile for the year for purposes of saving Gencumulativesky temporary weather files in EPW folder.
Coercing year to 2023
Filtering dates
Saving file EPWs\metdata_temp.csv, # points: 8760
Calculating Sun position for Metdata that is right-labeled with a delta of -30 mins. i.e. 12 is 11:30 sunpos
PV_module = demo.makeModule(name='PV_module',x=module_x,y=module_y,numpanels = num_panels, xgap=xgap, ygap=ygap)
demo.addMaterial(material=ref_material_name, Rrefl=reflectance, Grefl=reflectance, Brefl=reflectance, comment=description)
reflector_name = 'reflector_'+str(reflector_length)+'m'
reflector_module = demo.makeModule(name=reflector_name,x=reflector_width,y=reflector_length,numpanels = 1,
xgap=0, ygap=0,modulematerial=ref_material_name)
Module Name: PV_module
Module PV_module updated in module.json
Pre-existing .rad file objects\PV_module.rad will be overwritten
Material exists, overwriting...
Added material Ground_sheet to file ground.rad
Module Name: reflector_1.0m
Module reflector_1.0m updated in module.json
Pre-existing .rad file objects\reflector_1.0m.rad will be overwritten
Run bifacial_radiance comparison#
metdata.datetime
[Timestamp('2023-12-04 08:00:00-0700', tz='UTC-07:00'),
Timestamp('2023-12-04 09:00:00-0700', tz='UTC-07:00'),
Timestamp('2023-12-04 10:00:00-0700', tz='UTC-07:00'),
Timestamp('2023-12-04 11:00:00-0700', tz='UTC-07:00'),
Timestamp('2023-12-04 12:00:00-0700', tz='UTC-07:00'),
Timestamp('2023-12-04 13:00:00-0700', tz='UTC-07:00'),
Timestamp('2023-12-04 14:00:00-0700', tz='UTC-07:00'),
Timestamp('2023-12-04 15:00:00-0700', tz='UTC-07:00'),
Timestamp('2023-12-04 16:00:00-0700', tz='UTC-07:00'),
Timestamp('2023-12-04 17:00:00-0700', tz='UTC-07:00')]
for ts in range(0,len(metdata.datetime)):
print("timestamp:"+str(ts), metdata.datetime[ts])
ts_string = str(ts).zfill(4)
ghi_ts = metdata.ghi[ts]
tilt = demo.getSingleTimestampTrackerAngle(timeindex=ts, metdata=metdata, gcr=GCR, azimuth=180, axis_tilt=0, limit_angle=50, backtrack=True)
demo.setGround(metdata.albedo[ts])
demo.gendaylit(ts)
sceneDict1 = {'tilt':tilt,'pitch': pitch,'hub_height':hub_height,'azimuth':axis_azimuth, 'nMods': nMods, 'nRows': nRows}
scene1 = demo.makeScene(module=PV_module, sceneDict=sceneDict1) #makeScene creates a .rad file with 20 modules per row, 7 rows.
octfile = demo.makeOct(demo.getfilelist())
analysis = AnalysisObj(octfile, demo.basename) # return an analysis object including the scan dimensions for back irradiance
frontscan, backscan = analysis.moduleAnalysis(scene1, sensorsy=3)
analysis.analysis(octfile, 'Reference_ts'+ts_string, frontscan, backscan) # compare the back vs front irradiance
#FULL TEST W/REFLECTOR
sceneDict2 = {'tilt':0,'pitch': pitch,'clearance_height':0,'azimuth':axis_azimuth, 'nMods': 1, 'nRows': nRows,'originy': 0,'originx':reflector_offset,'appendRadfile':True}
scene2 = demo.makeScene(module=reflector_module, sceneDict=sceneDict2)
octfile = demo.makeOct(demo.getfilelist())
analysis = AnalysisObj(octfile, demo.basename) # return an analysis object including the scan dimensions for back irradiance
frontscan, backscan = analysis.moduleAnalysis(scene1, sensorsy=3)
analysis.analysis(octfile, 'reflector_'+str(reflector_length)+'m_ts'+ts_string, frontscan, backscan) # compare the back vs front irradiance
timestamp:0 2023-12-04 08:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0000_Row2_Module4_Front
Linescan in process: Reference_ts0000_Row2_Module4_Back
Saved: results\irr_Reference_ts0000_Row2_Module4.csv
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0000_Row2_Module4_Front
Linescan in process: reflector_1.0m_ts0000_Row2_Module4_Back
Saved: results\irr_reflector_1.0m_ts0000_Row2_Module4.csv
timestamp:1 2023-12-04 09:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0001_Row2_Module4_Front
Linescan in process: Reference_ts0001_Row2_Module4_Back
Saved: results\irr_Reference_ts0001_Row2_Module4.csv
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0001_Row2_Module4_Front
Linescan in process: reflector_1.0m_ts0001_Row2_Module4_Back
Saved: results\irr_reflector_1.0m_ts0001_Row2_Module4.csv
timestamp:2 2023-12-04 10:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0002_Row2_Module4_Front
Linescan in process: Reference_ts0002_Row2_Module4_Back
Saved: results\irr_Reference_ts0002_Row2_Module4.csv
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0002_Row2_Module4_Front
Linescan in process: reflector_1.0m_ts0002_Row2_Module4_Back
Saved: results\irr_reflector_1.0m_ts0002_Row2_Module4.csv
timestamp:3 2023-12-04 11:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0003_Row2_Module4_Front
Linescan in process: Reference_ts0003_Row2_Module4_Back
Saved: results\irr_Reference_ts0003_Row2_Module4.csv
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0003_Row2_Module4_Front
Linescan in process: reflector_1.0m_ts0003_Row2_Module4_Back
Saved: results\irr_reflector_1.0m_ts0003_Row2_Module4.csv
timestamp:4 2023-12-04 12:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0004_Row2_Module4_Front
Linescan in process: Reference_ts0004_Row2_Module4_Back
Saved: results\irr_Reference_ts0004_Row2_Module4.csv
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0004_Row2_Module4_Front
Linescan in process: reflector_1.0m_ts0004_Row2_Module4_Back
Saved: results\irr_reflector_1.0m_ts0004_Row2_Module4.csv
timestamp:5 2023-12-04 13:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0005_Row2_Module4_Front
Linescan in process: Reference_ts0005_Row2_Module4_Back
Saved: results\irr_Reference_ts0005_Row2_Module4.csv
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0005_Row2_Module4_Front
Linescan in process: reflector_1.0m_ts0005_Row2_Module4_Back
Saved: results\irr_reflector_1.0m_ts0005_Row2_Module4.csv
timestamp:6 2023-12-04 14:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0006_Row2_Module4_Front
Linescan in process: Reference_ts0006_Row2_Module4_Back
Saved: results\irr_Reference_ts0006_Row2_Module4.csv
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0006_Row2_Module4_Front
Linescan in process: reflector_1.0m_ts0006_Row2_Module4_Back
Saved: results\irr_reflector_1.0m_ts0006_Row2_Module4.csv
timestamp:7 2023-12-04 15:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0007_Row2_Module4_Front
Linescan in process: Reference_ts0007_Row2_Module4_Back
Saved: results\irr_Reference_ts0007_Row2_Module4.csv
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0007_Row2_Module4_Front
Linescan in process: reflector_1.0m_ts0007_Row2_Module4_Back
Saved: results\irr_reflector_1.0m_ts0007_Row2_Module4.csv
timestamp:8 2023-12-04 16:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0008_Row2_Module4_Front
Linescan in process: Reference_ts0008_Row2_Module4_Back
Saved: results\irr_Reference_ts0008_Row2_Module4.csv
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0008_Row2_Module4_Front
Linescan in process: reflector_1.0m_ts0008_Row2_Module4_Back
Saved: results\irr_reflector_1.0m_ts0008_Row2_Module4.csv
timestamp:9 2023-12-04 17:00:00-07:00
Loading albedo, 1 value(s), 0.210 avg
1 nonzero albedo values.
Warning: negative sun elevation at 2023-12-04 17:00:00-07:00. Re-calculated elevation: 2.4
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\main.py:2151: Warning: xform: command line error at '-rx'
oconv: warning - (!xform -rx nan -t 0 0 1.5 -a 7 -t 1.05 0 0 -a 3 -t 0 5.7 0 -i 1 -t -3.1500000000000004 -5.7 0 -rz 90 -t 0 0 0 objects\PV_module.rad): empty file
oconv: warning - (objects\PV_module_C_nan_rtr_5.70000_tilt_nan_7modsx3rows_origin0,0.rad): empty file
warnings.warn(err[9:], Warning)
Created Mandy_reflectors.oct
Linescan in process: Reference_ts0009_Row2_Module4_Front
message: xform: command line error at '-rx'
rtrace: warning - (!xform -rx nan -t 0 0 1.5 -a 7 -t 1.05 0 0 -a 3 -t 0 5.7 0 -i 1 -t -3.1500000000000004 -5.7 0 -rz 90 -t 0 0 0 objects\PV_module.rad): empty file
rtrace: warning - (objects\PV_module_C_nan_rtr_5.70000_tilt_nan_7modsx3rows_origin0,0.rad): empty file
Linescan in process: Reference_ts0009_Row2_Module4_Back
message: xform: command line error at '-rx'
rtrace: warning - (!xform -rx nan -t 0 0 1.5 -a 7 -t 1.05 0 0 -a 3 -t 0 5.7 0 -i 1 -t -3.1500000000000004 -5.7 0 -rz 90 -t 0 0 0 objects\PV_module.rad): empty file
rtrace: warning - (objects\PV_module_C_nan_rtr_5.70000_tilt_nan_7modsx3rows_origin0,0.rad): empty file
Created Mandy_reflectors.oct
Linescan in process: reflector_1.0m_ts0009_Row2_Module4_Front
message: xform: command line error at '-rx'
rtrace: warning - (!xform -rx nan -t 0 0 1.5 -a 7 -t 1.05 0 0 -a 3 -t 0 5.7 0 -i 1 -t -3.1500000000000004 -5.7 0 -rz 90 -t 0 0 0 objects\PV_module.rad): empty file
rtrace: warning - (objects\PV_module_C_nan_rtr_5.70000_tilt_nan_7modsx3rows_origin0,0.rad): empty file
Linescan in process: reflector_1.0m_ts0009_Row2_Module4_Back
message: xform: command line error at '-rx'
rtrace: warning - (!xform -rx nan -t 0 0 1.5 -a 7 -t 1.05 0 0 -a 3 -t 0 5.7 0 -i 1 -t -3.1500000000000004 -5.7 0 -rz 90 -t 0 0 0 objects\PV_module.rad): empty file
rtrace: warning - (objects\PV_module_C_nan_rtr_5.70000_tilt_nan_7modsx3rows_origin0,0.rad): empty file
Summarize output data in pandas dataframe#
resultsfolder = os.path.join(test_folder, 'results')
columns = ['Datetime','GHI',
'avg_FrontIrrad','avg_RearIrrad','avg_TotalIrrad','MAD','Power_DC','Power_AC',\
'ref_avg_FrontIrrad','ref_avg_RearIrrad','ref_avg_TotalIrrad','ref_MAD','ref_Power_DC','ref_Power_AC',\
'front_irrGain','rear_irrGain','total_irrGain','total_energyGain_AC']
results_df = pd.DataFrame(columns=columns)
avg_FrontIrrad = []
avg_RearIrrad = []
avg_TotalIrrad = []
MAD = []
Power_DC = []
Power_AC = []
ref_avg_FrontIrrad = []
ref_avg_RearIrrad = []
ref_avg_TotalIrrad = []
ref_MAD = []
ref_Power_DC = []
ref_Power_AC = []
front_irrGain = []
rear_irrGain = []
total_irrGain = []
total_energyGain_AC = []
timestamp_list = []
for ts in range(0,len(metdata.datetime)):
ts_string = str(ts).zfill(4)
temp_air = metdata.temp_air[ts]
wind_speed = metdata.wind_speed[ts]
ghi_ts = metdata.ghi[ts]
results_df.loc[ts,'GHI']=ghi_ts
results_df.loc[ts,'Datetime']=metdata.datetime[ts]
tilt = demo.getSingleTimestampTrackerAngle(ts, metdata, gcr=GCR, azimuth=180, axis_tilt=0, limit_angle=50, backtrack=True)
if ghi_ts != 0 and not np.isnan(tilt):
timestamp_list.append(ts)
ts_string = str(ts).zfill(4)
sim_name = ('irr_'+reflector_name+'_ts'+ts_string+'_Row2_Module4.csv')
result_file = os.path.join('results', sim_name)
data = pd.read_csv(result_file)
FrontIrrad = data['Wm2Front'].to_numpy(dtype='float')
RearIrrad = data['Wm2Back'].to_numpy(dtype='float')
TotalIrrad = (bf*RearIrrad)+FrontIrrad
results_df.loc[ts,'avg_FrontIrrad']=FrontIrrad.mean()
results_df.loc[ts,'avg_RearIrrad']=RearIrrad.mean()
results_df.loc[ts,'avg_TotalIrrad']=TotalIrrad.mean()
MAD_ts = mismatch.mad_fn(TotalIrrad)
results_df.loc[ts,'MAD']=MAD_ts
MMloss_fit=0.054*(MAD_ts) + 0.068*np.square(MAD_ts)
power_ts = performance.calculatePerformance(TotalIrrad.mean(),temp_air=temp_air,wind_speed=wind_speed,CECMod=CECMod)
power_DC_ts = power_ts*(1-(MMloss_fit/100))
results_df.loc[ts,'Power_DC']=power_DC_ts
power_AC_ts = np.clip(power_DC_ts, 0, Module_power/DCACratio)
results_df.loc[ts,'Power_AC']=power_AC_ts
ref_name = ('irr_Reference_ts'+ts_string+'_Row2_Module4.csv')
reference_file = os.path.join('results', ref_name)
data_ref = pd.read_csv(reference_file)
ref_FrontIrrad = data_ref['Wm2Front'].to_numpy(dtype='float')
ref_RearIrrad = data_ref['Wm2Back'].to_numpy(dtype='float')
ref_TotalIrrad = (bf*ref_RearIrrad)+ref_FrontIrrad
results_df.loc[ts,'ref_avg_FrontIrrad']=ref_FrontIrrad.mean()
results_df.loc[ts,'ref_avg_RearIrrad']=ref_RearIrrad.mean()
results_df.loc[ts,'ref_avg_TotalIrrad']=ref_TotalIrrad.mean()
ref_MAD_ts = mismatch.mad_fn(ref_TotalIrrad)
results_df.loc[ts,'ref_MAD']=ref_MAD_ts
MMloss_fit=0.054*(ref_MAD_ts) + 0.068*np.square(ref_MAD_ts)
ref_power_ts = performance.calculatePerformance(ref_TotalIrrad.mean(),temp_air=temp_air,wind_speed=wind_speed,CECMod=CECMod)
ref_Power_DC_ts = ref_power_ts*(1-(MMloss_fit/100))
results_df.loc[ts,'ref_Power_DC']=ref_Power_DC_ts
ref_Power_AC_ts = np.clip(ref_Power_DC_ts, 0, Module_power/DCACratio)
results_df.loc[ts,'ref_Power_AC']=ref_Power_AC_ts
results_df.loc[ts,'front_irrGain'] = 100*((FrontIrrad.mean()-ref_FrontIrrad.mean())/ref_FrontIrrad.mean())
results_df.loc[ts,'rear_irrGain'] = 100*((RearIrrad.mean()-ref_RearIrrad.mean())/ref_RearIrrad.mean())
results_df.loc[ts,'total_irrGain'] = 100*((TotalIrrad.mean()-ref_TotalIrrad.mean())/ref_TotalIrrad.mean())
results_df.loc[ts,'total_energyGain_AC'] = 100*((power_AC_ts-ref_Power_AC_ts)/ref_Power_AC_ts)
# Convert datetime column to datetime values
results_df['Datetime'] = pd.to_datetime(results_df['Datetime'])
results_df['Datetime'] = results_df['Datetime'].dt.tz_localize(None)
print(results_df)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:64: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
alpha_sc=float(CECMod.alpha_sc),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:65: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
a_ref=float(CECMod.a_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:66: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_L_ref=float(CECMod.I_L_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:67: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
I_o_ref=float(CECMod.I_o_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:68: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_sh_ref=float(CECMod.R_sh_ref),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:69: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
R_s=float(CECMod.R_s),
c:\users\sayala\documents\github\bifacial_radiance\bifacial_radiance\performance.py:70: FutureWarning: Calling float on a single element Series is deprecated and will raise a TypeError in the future. Use float(ser.iloc[0]) instead
Adjust=float(CECMod.Adjust)
Datetime GHI avg_FrontIrrad avg_RearIrrad avg_TotalIrrad \
0 2023-12-04 08:00:00 31 53.508667 8.311103 59.326439
1 2023-12-04 09:00:00 101 221.173833 28.095227 240.840492
2 2023-12-04 10:00:00 263 406.1298 66.313983 452.549588
3 2023-12-04 11:00:00 391 475.705633 73.87991 527.42157
4 2023-12-04 12:00:00 436 443.6279 70.110957 492.70557
5 2023-12-04 13:00:00 330 340.3514 59.49824 382.000168
6 2023-12-04 14:00:00 393 533.0483 75.808643 586.11435
7 2023-12-04 15:00:00 292 560.131633 72.924423 611.17873
8 2023-12-04 16:00:00 133 330.8946 38.37709 357.758563
9 2023-12-04 17:00:00 12 NaN NaN NaN
MAD Power_DC Power_AC ref_avg_FrontIrrad ref_avg_RearIrrad \
0 0.30832 19.051136 19.051136 53.554813 5.21588
1 0.219809 78.928607 78.928607 221.025867 18.566333
2 0.552143 147.659042 147.659042 405.9095 43.394143
3 0.548472 170.434469 170.434469 475.3273 53.335443
4 0.116434 160.546557 160.546557 443.412867 56.097147
5 0.085784 124.058078 124.058078 340.723567 45.155583
6 0.75694 188.070143 188.070143 533.272067 51.173553
7 0.766518 196.500482 196.500482 559.348633 44.355527
8 0.304744 116.068826 116.068826 330.736233 24.100987
9 NaN NaN NaN NaN NaN
ref_avg_TotalIrrad ref_MAD ref_Power_DC ref_Power_AC front_irrGain \
0 57.20593 0.364473 18.349619 18.349619 -0.086167
1 234.0223 0.991582 76.598557 76.598557 0.066945
2 436.2854 0.908092 142.360015 142.360015 0.054273
3 512.66211 0.36853 165.83357 165.83357 0.079594
4 482.680869 0.204505 157.329223 157.329223 0.048495
5 372.332475 0.300231 120.92546 120.92546 -0.109228
6 569.093554 0.270376 182.911501 182.911501 -0.041961
7 590.397502 0.407135 190.141857 190.141857 0.139984
8 347.606924 0.32889 112.796362 112.796362 0.047883
9 NaN NaN NaN NaN NaN
rear_irrGain total_irrGain total_energyGain_AC
0 59.34228 3.706799 3.823062
1 51.323507 2.91348 3.041898
2 52.817819 3.727878 3.722272
3 38.519351 2.878984 2.774407
4 24.981324 2.07688 2.044969
5 31.762754 2.596522 2.590537
6 48.140276 2.990861 2.820294
7 64.408877 3.519871 3.344148
8 59.234518 2.920436 2.901214
9 NaN NaN NaN
results_df
| Datetime | GHI | avg_FrontIrrad | avg_RearIrrad | avg_TotalIrrad | MAD | Power_DC | Power_AC | ref_avg_FrontIrrad | ref_avg_RearIrrad | ref_avg_TotalIrrad | ref_MAD | ref_Power_DC | ref_Power_AC | front_irrGain | rear_irrGain | total_irrGain | total_energyGain_AC | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2023-12-04 08:00:00 | 31 | 53.508667 | 8.311103 | 59.326439 | 0.30832 | 19.051136 | 19.051136 | 53.554813 | 5.21588 | 57.20593 | 0.364473 | 18.349619 | 18.349619 | -0.086167 | 59.34228 | 3.706799 | 3.823062 |
| 1 | 2023-12-04 09:00:00 | 101 | 221.173833 | 28.095227 | 240.840492 | 0.219809 | 78.928607 | 78.928607 | 221.025867 | 18.566333 | 234.0223 | 0.991582 | 76.598557 | 76.598557 | 0.066945 | 51.323507 | 2.91348 | 3.041898 |
| 2 | 2023-12-04 10:00:00 | 263 | 406.1298 | 66.313983 | 452.549588 | 0.552143 | 147.659042 | 147.659042 | 405.9095 | 43.394143 | 436.2854 | 0.908092 | 142.360015 | 142.360015 | 0.054273 | 52.817819 | 3.727878 | 3.722272 |
| 3 | 2023-12-04 11:00:00 | 391 | 475.705633 | 73.87991 | 527.42157 | 0.548472 | 170.434469 | 170.434469 | 475.3273 | 53.335443 | 512.66211 | 0.36853 | 165.83357 | 165.83357 | 0.079594 | 38.519351 | 2.878984 | 2.774407 |
| 4 | 2023-12-04 12:00:00 | 436 | 443.6279 | 70.110957 | 492.70557 | 0.116434 | 160.546557 | 160.546557 | 443.412867 | 56.097147 | 482.680869 | 0.204505 | 157.329223 | 157.329223 | 0.048495 | 24.981324 | 2.07688 | 2.044969 |
| 5 | 2023-12-04 13:00:00 | 330 | 340.3514 | 59.49824 | 382.000168 | 0.085784 | 124.058078 | 124.058078 | 340.723567 | 45.155583 | 372.332475 | 0.300231 | 120.92546 | 120.92546 | -0.109228 | 31.762754 | 2.596522 | 2.590537 |
| 6 | 2023-12-04 14:00:00 | 393 | 533.0483 | 75.808643 | 586.11435 | 0.75694 | 188.070143 | 188.070143 | 533.272067 | 51.173553 | 569.093554 | 0.270376 | 182.911501 | 182.911501 | -0.041961 | 48.140276 | 2.990861 | 2.820294 |
| 7 | 2023-12-04 15:00:00 | 292 | 560.131633 | 72.924423 | 611.17873 | 0.766518 | 196.500482 | 196.500482 | 559.348633 | 44.355527 | 590.397502 | 0.407135 | 190.141857 | 190.141857 | 0.139984 | 64.408877 | 3.519871 | 3.344148 |
| 8 | 2023-12-04 16:00:00 | 133 | 330.8946 | 38.37709 | 357.758563 | 0.304744 | 116.068826 | 116.068826 | 330.736233 | 24.100987 | 347.606924 | 0.32889 | 112.796362 | 112.796362 | 0.047883 | 59.234518 | 2.920436 | 2.901214 |
| 9 | 2023-12-04 17:00:00 | 12 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
Calculate a few metrics for entire run#
""" Summarize Results """
sum_FrontIrrad = np.sum(results_df['avg_FrontIrrad'])
sum_RearIrrad = np.sum(results_df['avg_RearIrrad'])
sum_TotalIrrad = np.sum(results_df['avg_TotalIrrad'])
sum_Power_DC = np.sum(results_df['Power_DC'])
sum_Power_AC = np.sum(results_df['Power_AC'])
sum_ref_FrontIrrad = np.sum(results_df['ref_avg_FrontIrrad'])
sum_ref_RearIrrad = np.sum(results_df['ref_avg_RearIrrad'])
sum_ref_TotalIrrad = np.sum(results_df['ref_avg_TotalIrrad'])
sum_ref_Power_DC = np.sum(results_df['ref_Power_DC'])
sum_ref_Power_AC = np.sum(results_df['ref_Power_AC'])
total_front_irrGain = 100*((sum_FrontIrrad-sum_ref_FrontIrrad)/sum_ref_FrontIrrad)
total_rear_irrGain=100*((sum_RearIrrad-sum_ref_RearIrrad)/sum_ref_RearIrrad)
total_total_irrGain=100*((sum_TotalIrrad-sum_ref_TotalIrrad)/sum_ref_TotalIrrad)
total_total_energyGain_AC=100*((sum_Power_AC-sum_ref_Power_AC)/sum_ref_Power_AC)
print("front irradiance gain:\t"+str(np.round(total_front_irrGain,2))+"%")
print("rear irradiance gain:\t"+str(np.round(total_rear_irrGain))+"%")
print("total irradiance gain:\t"+str(np.round(total_total_irrGain))+"%")
print("AC energy gain:\t\t"+str(np.round(total_total_energyGain_AC))+"%")
front irradiance gain: 0.04%
rear irradiance gain: 45.0%
total irradiance gain: 3.0%
AC energy gain: 3.0%
Plot results - single day example#
import matplotlib.dates as mdates
import datetime
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
""" PLOT RESULTS """
fig_x = 3.5
fig_y = 4
titlesize = 10
labelsize = 8
lw = 1
markersize = lw*2
view_year = 2021
view_month = 1 #January
view_date = 3 #3rd
fig,ax = plt.subplots(figsize=(fig_x,fig_y))
ax2 = ax.twinx()
ax.plot(results_df['Datetime'],results_df['total_energyGain_AC'], ls="-", c="k")
ax2.plot(results_df['Datetime'],results_df['GHI'], ls="--", c="r")
ax.xaxis.set_major_locator(mdates.HourLocator(interval=3))
formatter = mdates.DateFormatter("%H:%M")
ax.xaxis.set_major_formatter(formatter)
#ax.set_xlim([datetime.datetime(view_year, view_month,view_date,7,30), datetime.datetime(view_year,view_month,view_date,17,30)])
ax.set_ylabel("Reflector-provided Gain (%)",fontsize=titlesize)
ax2.set_ylabel("GHI (W/m$^2$)",fontsize=titlesize)
ax.set_xlabel("Time of Day",fontsize=titlesize)
custom_lines = [Line2D([0], [0], color='k', lw=lw,linestyle='-'),
Line2D([0], [0], color='r', lw=lw,linestyle='--')]
custom_labels = ['Energy Gain','GHI']
ax.legend(custom_lines,custom_labels,fontsize=labelsize)
<matplotlib.legend.Legend at 0x1719a848410>